MICROSOFT Corporation's Dr. Watson is a debugging tool that logs information regarding internal operations of the operating system "WINDOWS" into a failure report. Dr. Watson logs the information after any application software (typically called just "application") encounters an error, that MICROSOFT calls "unrecoverable application error (UAE)." See, for example, "An Annotated Dr. Watson Log File," KB:Windows SDK KBase, Microsoft Development Library, MICROSOFT Corporation, One Microsoft Way, Redmond, Wash.; "Postmortem Debugging," Matt Pietrek, Dr. Dobb's Journal, September 1992; and "Exception Handlers and Windows Applications," Joseph Hlavaty, Dr. Dobbs Journal, September 1994; all of which are incorporated by reference herein in their entirety.
Briefly, a Dr. Watson failure report contains information on (1) the name of an application that failed, (2) the error encountered, such as "Exceed Segment Bounds (Read)," (3) the instruction's address at which the failure occurred, (4) the instruction that caused the failure, (5) the contents in various registers, such as CPU registers, instruction pointer (also called "program counter"), stack pointer, base pointer, code segment selector, stack segment selector, data segment selector, extra segment selector, 32-bit registers and flag bits (e.g. Overflow bit, Direction bit, Sign bit, Zero bit, Carry bit, Interrupt bit, Auxcarry bit and Parity bit), (6) WINDOWS installation and environment information, (7) stack frame information such as disassembled instructions surrounding the failed instruction, and several levels of nested function calls leading to the failed instruction, (8) names of all tasks when the failure occurred and (9) user response typed into a "Dr. Watson's Clues" dialog box.
MICROSOFT Corporation recommends that a user exit WINDOWS after a UAE occurs, and if exiting is not possible, to restart the personal computer. See "The DrWatson and MSD Diagnostics," KB:Windows 3.x KBase, Microsoft Development Library, MICROSOFT Corporation, One Microsoft Way, Redmond, Wash., also incorporated by reference herein in its entirety. MICROSOFT Corporation further recommends that after a UAE occurs, the user should run MICROSOFT DIAGNOSTICS (MSD) that identifies system configuration information, such as the BIOS, video card type, manufacturer, installed processor(s), I/O port status, operating system version, environment settings, hardware devices attached, and additional software running concurrently with MSD. Id. All of these actions can result in loss of valuable data, as well as valuable time before a user can continue using the application.
MICROSOFT Corporation also recommends that after logging several UAEs, the user should send the log to MICROSOFT Corporation, although MICROSOFT Corporation cannot respond to log contributors. Id. Therefore, the user receives no assistance in identifying the problem that caused the UAE and in fixing the application to avoid that particular UAE in future. Moreover, Dr. Watson appears to log only an application's UAEs failures, and cannot be used for debugging other errors, such as errors in the operating system or errors in hardware.
Errors in hardware can be debugged using a built-in "debug" port of the type present in INTEL's P6 (also called "Pentium Pro") microprocessor. INTEL recommends the P6's debug port as an aid for designing a system board on which the CPU is mounted. See, for example, "Intel equips its P6 with test and debug features," Electronic Engineering Times, Oct. 16, 1995, n870, pages 1-2, that is incorporated by reference herein in its entirety.
Briefly, the P6 debug port is typically connected to an "in-target probe" (ITP) via a 30-pin connector, and allows access to boundary-scan (JTAG) and built-in-self-test (BIST) structures on the P6 microprocessor. Through an ITP such as ICE-16 available from, for example, American Arium, Tustin, Calif., board designers can control program execution, set break points, monitor the P6's access of registers, memory and input-output devices.
However, a typical user neither has access to an ITP nor the expertise needed to use the ITP. Therefore, the user is still unable to identify the problem that causes a UAE and unable to fix the application to avoid known UAEs in future.